Skip to main content

Find K Closest Elements

Find K Closest Elements

Given a sorted integer array arr, two integers k and x, return the k closest integers to x in the array. The result should also be sorted in ascending order.

An integer a is closer to x than an integer b if:

|a - x| < |b - x|, or
|a - x| == |b - x| and a < b


func findClosestElements(arr []int, k int, x int) []int {

low := 0
high := len(arr) - k

for low < high {
mid := (low + high) / 2
// if the gap is bigger on the left than the right, move up left
if x - arr[mid] > arr[mid + k] - x {
low = mid + 1
} else {
high = mid
}
}

return arr[low:low+k]
}